package com.service;

public interface UserRedPacketService {
    /**
     * 保存抢红包
     * 悲观锁
     * @param redPacketId 红包编号
     * @param userId      抢红包用户编号
     * @return 影响记录数
     */
    int grabRedPacket(Long redPacketId, Long userId);


    /**
     * 通过Redis高速读写，Mysql批量写入
     * @param redPacketId
     * @param userId
     * @return
     */
    Long grabRedPacketByRedis(Long redPacketId, Long userId);


    /**
     * 通过乐观锁实现
     * @param redPacketId
     * @param userId
     * @return
     */
    int grabRedPacketForVersion(Long redPacketId, Long userId);
}
